Creo Elements/Direct Modeling - HyperFact Link

General Description

The information about the holes is transferred by a structure denoted as SolidDesigner_to_HyperFact_Hole within the file. This structure can carry the following key-value-pairs, if one pair is missing the default is assumed.

SolidDesigner_to_HyperFact_Hole (
    Version(double
            /* default = 1.2, */
            /* one out of 1.0, 1.1, 1.2, 1.3, 1.4 */
            );
    Comment(string /* default = "" (empty string) */) ;
    Path(string /* default = "" (empty string) */) ;
    Name(string /* default = "" (empty string) */) ;
    Start_Position(double , double, double);
    End_Position(double, double, double);
    HoleDepth(double /* > 0.0 */) ;
    HoleDepth_with_Iso_Tolerance(double /* > 0.0 */, string) ; 
    HoleDepth_with_Min_Max_Tolerance(double /* > 0.0 */ , double, double ) ; 
    Diameter(double /* > 0.0 */ ) ;
    Diameter_with_Iso_Tolerance(double /* > 0.0 */ , string ) ;
    Diameter_with_Min_Max_Tolerance(double /* > 0.0 */ , double, double ) ;
    Chamfer_Depth(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Chamfer_Angle(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Backside_Chamfer_Depth(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Backside_Chamfer_Angle(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Bottom_Chamfer_Depth(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Bottom_Chamfer_Angle(double /* >= 0.0, default = 0.0 (no chamfer) */ ) ;
    Bottom_Blend_Radius(double /* >= 0.0, default = 0.0 (no blend) */ ) ;
    Bottom_Blend_Radius_with_Iso_Tolerance(double /* >= 0.0, default = 0.0 (no blend) */ ) ;
    Bottom_Blend_Radius_with_Min_Max_Tolerance(double /* >= 0.0, default = 0.0 (no blend) */ ) ;    
    Cone_Angle(double 
	       /* 0.0 (through hole) <= value <= 180.0 (flat blind)   */
	       /* default = 0.0 (through hole)                        */
	      ) ;
    Iso_Tolerance( string
		   /* string concatenated from */
		   /* one out of */
		   /* "A", "B", "C", "CD", "D", "E", "EF", "F", "FG", */
		   /* "G", "H", "J", "JS", "K", "M", "N", "P", "R",   */
		   /* "S", "T", "U", "V", "W", "X", "Y", "Z",         */
		   /* "ZA", "ZB", "ZC",                               */
		   /* "a", "b", "c", "cd", "d", "e", "ef", "f", "fg", */
		   /* "g", "h", "j", "js", "k", "m", "n", "p", "r",   */
		   /* "s", "t", "u", "v", "w", "x", "y", "z",         */
		   /* "za", "zb", "zc"				      */
		   /* plus one out of 			              */
		   /* "01", "0", "1", "2", "3", "4", "5", "6", "7",   */
		   /* "8", "9", "10", "11", "12", "13", "14", "15",   */
		   /* "16", "17", "18"                                */
		 ) ;
    Min_Max_Tolerance( double min, double max
		      /* min < max, one of min or max can be zero */ )
    Thread_Type(string /* [ "metric" | "inch" ] */) ;
    Thread_Depth( double /* > 0 */) ;
    Thread_Depth_with_Iso_Tolerance( double /* > 0 */, string) ;
    Thread_Depth_with_Min_Max_Tolerance( double /* > 0 */ , double, double ) ;
    Thread_Lead(double /* > 0 */) ; 
    Thread_Starts( integer
                   /* >= 1 */
                   /* default = 1 */) ;
    Thread_Hand( enum
                 /* one out of Right, Left */
                 /* default = Right */
	    ) ;
    Tolerance_Depth( double /* > 0 */) ;
    Tolerance_Depth_with_Iso_Tolerance( double /* > 0 */, string) ;
    Tolerance_Depth_with_Min_Max_Tolerance( double /* > 0 */ , double, double ) ;
    Side_Surface_Spec (
        Form_Tolerances (
            Cylindricity( double /* > 0 */ ) ;
	)
        Surface_Qualities (
        )
    )
    Bottom_Surface_Spec (
        Form_Tolerances (
            Flatness( double /* > 0 */ ) ;
        )
        Surface_Qualities (
        )
    )
    Surface_Qualities (
        ISO_Class( string
		   /* string concatenated from */
		   /* one out of */
		   /* "N"                                             */
		   /* plus one out of 			              */
		   /* "1", "2", "3", "4", "5", "6", "7", "8", "9",    */
		   /* "10", "11", "12"                                */
		 ) ;
        Ra(double /* > 0.0 */) ;
        RaMin(double /* > 0.0 */) ;
        RaMax(double /* > 0.0 */) ;
        RaMinMax(double min /* > 0.0 */, double max /* > 0.0 , max > min */) ;
        Rp(double /* > 0.0 */) ;
        RpMin(double /* > 0.0 */) ;
        RpMax(double /* > 0.0 */) ;
        RpMinMax(double  min /* > 0.0 */, double max /* > 0.0 , max > min */) ;
        Rt(double /* > 0.0 */) ;
        RtMin(double /* > 0.0 */) ;
        RtMax(double /* > 0.0 */) ;
        RtMinMax(double min /* > 0.0 */, double max /* > 0.0 , max > min */) ;
        Tf(double /* > 0.0 */) ;
        TfMin(double /* > 0.0 */) ;
        TfMax(double /* > 0.0 */) ;
        TfMinMax(double min /* > 0.0 */, double max /* > 0.0 , max > min */) ;
    )
    StepData(
        ProcessType(enum
            /* default = FrontSide, */
            /* one out of FrontSide, BackSide, FrontRecess, BackRecess, Groove, BackGroove */
	    )
        StepDepth( double /* > 0 */) ;
        StepDepth_with_Iso_Tolerance( double /* > 0 */, string) ;
        StepDepth_with_Min_Max_Tolerance( double /* > 0 */ , double, double ) ;
        ...
        all other geometric specifications with the exception of
        - Start_Position,
        - End_Position,
        - HoleDepth,
        - HoleDepth_with_Iso_Tolerance
	- HoleDepth_with_Min_Max_Tolerance
    )
)

    Remarks
  1. In general there are some length specifiers specified in bunches of three (e.g. Hole_Depth, Diameter, Thread_Depth, Tolerance_Depth), those specifications are exclusive thus a Diameter can be specified with Iso_Tolerance or with Min_Max_Tolerance or no special tolerance at all. Only one them will appear in the file, if they are not specified, there is no tolerance information at all, general tolerance dependent to value applies. On the other hand a Diameter can be given with Iso Tolerance while a hole depth is specified with Min and Max values
  2. Thread_Depth is a minimum depth (if not specified with a tolerance)
  3. Tolerance_Depth is a minimum depth (if not specified with a tolerance)
  4. The order the key-value-pairs appear above roughly tells the order they will appear within the file, but the order is not guaranteed beyond the Version specifier which will always appear as the first entry or if missing assumed to be 1.0
  5. The Version describes which format version has to be expected, although the version is written for every hole currently the version is constant for all holes denoting the capabilities of the export version.
    Version Capabilities
    1.0 Values and Diameter Tolerances
    1.1 as above plus Depth Tolerances
    1.2 as above plus Surface Quality Specification
    1.3 as above plus Stepped Holes formatting + Backside Chamfer + Bottom Chamfer
    1.4 as above plus Bottom blend plus thread definition etc.
  6. HoleDepth is a new specifier which will be present in all files with version 1.1 or larger. The value is given although it could be computed from the other values (Start_Position, End_Position) in order to reduce the number of formats to parse.
  7. Tolerance_Depth is a new specifier which can occur in all versions of holes, but it will normally show up in version 1.2 and later only because Creo Elements/Direct Machining was not able to create/transfer those Partial Fit specifications with earlier versions (i.e. SolidDesigner 10.00 which is capable to work with those holes, will normally write version 1.2 or later)
  8. Side_Surface_Spec and Bottom_Surface_Spec can appear within versions 1.2 and later but will appear only if specified.
  9. Form_Tolerances can appear within versions 1.2 and later but will appear only if specified.
  10. Surface_Qualities can appear within versions 1.2 and later but will appear only if specified.
  11. Path appears within versions 1.3 and later. It represents the Path within Creo Elements/Direct Modeling to the owner of the Hole and may be used for cross referencing.
  12. StepData can appear within versions 1.3 and later but will appear only within Stepped Holes
  13. Backside chamfer data can appear within versions 1.3 and later but will appear only if there is a backside chamfer.
  14. Bottom chamfer data can appear within versions 1.3 and later but will appear only if there is a bottom chamfer.
  15. Bottom Blend radius can appear within versions 1.4 and later but will appear only when a Blind Hole has a defined bottom blend radius.
  16. Thread_Type has been extended with the 12.00 release to include of the next releases to include
    TypeDescription
    "BSW"British Standard Whithworth Thread
    "BSF"British Standard Fine Thread
    "BSP"British Standard Pipe Thread
    "UNC"Unified National Coarse Screw Thread (US)
    "UNF"Unified National Fine Screw Thread (US)
    "NPT"National Pipe Thread
    "TR"Trapezoid (DIN 103)
    "fTR"Flat Trapezoid (DIN 380)
    "S"Saw (DIN 513)
    "Rd"Round (DIN 405)
    "Rdm"Round (DIN 20400)
    "E"Edison
    "Rp"Pipe Thread R (DIN EN 10226)
    "G"Pipe Thread G (DIN ISO 228)
  17. Thread_Start has been added with the 12.00 release to allow multiple start threads.
  18. Thread_Hand has been added with the 12.00 release to allow both direction of threads.

Supported Features

    Remarks
  1. The examples of the HyperFact Definition contain the key-value-pair for Chamfer_angle and Chamfer_Depth in all cases although the value is the default (0.0 0.0), which means no chamfer at all, as specified by the drawing. This key-value-pair is added there only as reminder, that there will be a chamfer in almost every case.

Name Graphic Parameter
Through Hole HyperFact Definition
  • Diameter (P1)
  • Depth (P2)
Blind Hole HyperFact Definition
  • Diameter (P1)
  • Depth (P2)
  • Cone Angle (P3)
Through Hole with Fit HyperFact Definition
  • Diameter (P1)
  • Depth (P2)
  • Diameter Tolerance
Through Hole with partial Fit HyperFact Definition
  • Diameter (P1)
  • Depth (P2)
  • Diameter Tolerance (P4)
  • Depth of Fit (P3)
Blind Hole with partial Fit HyperFact Definition
  • Diameter (P1)
  • Depth (P2)
  • Diameter Tolerance (P5)
  • Depth of Fit (P4)
  • Cone Angle (P3)
Through Hole with Thread HyperFact Definition
  • Threaded Diameter (P1)
  • Depth (P2)
  • Thread Lead (P3)
Tap Hole with Thread HyperFact Definition
  • Depth (P2)
  • Thread Diameter(P1)
  • Thread Depth (P4)
  • Thread Lead (P7)
  • Cone Angle (P3)
  • Chamfer Angle (P5)
  • Chamfer Depth (P6)
Counterbored Hole HyperFact Definition
  • Countersink Diameter (P1)
  • Countersink Depth (P2)
  • Diameter (P3)
  • Depth (P4)
  • Countersink Diameter Fit (P5)
  • Diameter Fit (P6)
Stepped Hole made by (machadv-define-hole ....)
Graphic Parameter
HyperFact Definition
HyperFact Definition